package org.easy.eao.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 查询 注释
 * 
 * @author Frank
 */
@Retention(RetentionPolicy.RUNTIME)
@Target( { ElementType.METHOD })
public @interface Query {

	/** 查询语句 */
	String query() default "";

	/** 命名查询名 */
	String named() default "";
	
	/** 是否使用查询缓存(Hibernate) */
	boolean cacheable() default false;
	
	/** 查询缓存区域名(Hibernate) */
	String cacheRegion() default "";

	/**
	 * 查询 首条查询记录位置
	 * @author Frank
	 */
	@Retention(RetentionPolicy.RUNTIME)
	@Target( { ElementType.PARAMETER })
	public @interface FirstResult {
	}

	/**
	 * 查询 最多返回的查询记录数量
	 * @author Frank
	 */
	@Retention(RetentionPolicy.RUNTIME)
	@Target( { ElementType.PARAMETER })
	public @interface MaxResults {
	}
}
